Uwierzytelnianie i wymiana kluczy
Uwierzytelnianie to proces, w którym potwierdzamy toższamość drugiej strony komunikacji. W przypadku SSL uwierzytelnianie jest niejako pobocznym elementem — jest ono możliwe bez zastosowania żadnych dodatkowych zabiegów, ale nie jest integralną częścią protokołu. Cały mechanizm opiera się o tzw. wymianę kluczy — jest to proces, podczas którego obie strony w bezpieczny sposób ustalają między sobą jednorazowe klucze, które będą używane do szyfrowania dalszej komunikacji. Jeśli jesteś zainteresowana, jak to się dzieje dokładnie, polecamy zapoznać się z artykułami na temat PKI (public Key Infrastructure) oraz algorytmu Diffiego-Hellmana. Wystarczy wiedzieć, że można w tym procesie wykorzystać certyfikaty — o ile certyfikat jest zaufany (np. został wystawiony przez nas w przeszłości lub przez zaufane centrum certyfikacji — przykładem może być podpis elektroniczny), dane zapisane w takim certyfikacie można uznać za bezpieczne i na ich podstawie potwierdzić tożsamość drugiego uczestnika komunikacji.
Szyfrowanie
Szyfrowanie to drugi bardzo ważny aspekt protokołu SSL — sam protokół wspiera wiele różnych algorytmów szyfrowania, konkretny jest dobierany za każdym razem kiedy inicjowana jest komunikacja mając na uwadze takie czynniki jak bezpieczeństwo, wydajność oraz obsługa poprzez obie strony (niektóre algorytmy mogą nie być wspierane przez którąś ze stron). Za pomocą kluczy (ustalonych w pierwszym kroku), wszystkie transmitowane dane są szyfrowane, aby uniemożliwić ich odczytanie.
Integralność danych
Integralność danych to innymi słowy zapewnienie, że dane nie zostały zmodyfikowane podczas transmisji. Zastanawiasz się pewnie jak to możliwe — przecież dane są zaszyfrowane, powinny więc być bezpieczne? Otóż szyfrowanie to nic innego jak proces matematyczny, często niepozbawiony wad i słabości. Wielu pasjonatów analizuje algorytmy szyfrujące znajdując ich problemy i słabości, co przekłada się na bezpieczeństwo ich stosowania. Co więcej, niektóre algorytmy są podatne na specjalny rodzaj manipulacji, w której nie odszyfrowując wiadomości możemy zmienić jej treść w określony sposób! Byłoby to bardzo niebezpieczne, biorąc pod uwagę że atakujący mógłby np. zmienić numer konta w naszym zleceniu przelewu na swoje, czy też zmienić kwotę, nie mówiąc już o zmianie rozkazów w wojsku czy informacji od szpiegów i innych jednostek (bo nie ukrywajmy — armie i powiązane organizacje są obecnie najbardziej aktywne na polu tworzenia i analizy algorytmów szyfrujących ;) ). Integralność danych w SSL zapewniana jest poprzez dołączenie ‘podpisu’ — podpis ten wykorzystuje także klucze użyte do szyfrowania i zawiera unikalny ‘skrót’ wiadomości — nie jest możliwe jego prawidłowe zmodyfikowanie zmieniając część wiadomości, wymaga ponownego wyliczenia i znajomości kluczy szyfrujących. Dzięki takiej kombinacji protokół SSL zapewnia, że dane nie są zmanipulowane.